﻿using System;
using System.Runtime.Serialization;

namespace Vtron.ATSP.DomainObjects
{
    /// <summary>
    /// 在屏幕测试仪应用程序执行期间发生的错误
    /// </summary>
    /// <remarks>
    ///     <创建人>邓穗捷</创建人>
    ///     <创建时间>2014-08-19</创建时间>
    ///     <修订人></修订人>
    ///     <修订时间></修订时间>
    ///     <修订说明></修订说明>
    /// </remarks>
    [Serializable]
    public class ATSPException : Exception
    {
        /// <summary>
        /// 初始化 Vtron.ATSP.DomainObjects.ATSPException 类的新实例。
        /// </summary>
        public ATSPException()
            : base()
        {
        }

        /// <summary>
        /// 使用指定的错误消息初始化 Vtron.ATSP.DomainObjects.ATSPException 类的新实例。
        /// </summary>
        /// <param name="message">描述错误的消息</param>
        public ATSPException(string message)
            : base(message)
        {
            //TODO:write log
        }

        /// <summary>
        /// 使用指定错误消息和对作为此异常原因的内部异常的引用来初始化 Vtron.ATSP.DomainObjects.ATSPException 类的新实例。
        /// </summary>
        /// <param name="message">解释异常原因的错误消息。</param>
        /// <param name="innerException">导致当前异常的异常；如果未指定内部异常，则是一个 null 引用（在 Visual Basic 中为 Nothing）。</param>
        public ATSPException(string message, Exception innerException)
            : base(message, innerException)
        {
        }

        /// <summary>
        /// 用序列化数据初始化 Vtron.ATSP.DomainObjects.ATSPException 类的新实例。
        /// </summary>
        /// <param name="info">System.Runtime.Serialization.SerializationInfo，它存有有关所引发异常的序列化的对象数据。</param>
        /// <param name="context">System.Runtime.Serialization.StreamingContext，它包含有关源或目标的上下文信息。</param>
        public ATSPException(SerializationInfo info, StreamingContext context)
            : base(info, context)
        {
        }
    }
}
